/**
 * 构造函数 Person
 */
function Person() {
    this.name = '中国人'
    this.pets = ['小煤球', 'java']
}
Person.prototype.run = function (params) {
    console.log("跑");
}

/**
 * 构造函数 Student
 */
function Student() {
    //构造函数继承
    Person.call(this)
    this.num = '学号'
}

//构造函数继承的缺点：
//1.只能继承父类的实例属性和方法，不能继承原型属性合方法
//2.每个子类都有父类实例函数的副本，影响性能

const p1 = new Student()


p1.pets.push('小猫')
console.log(p1);
console.log(p1.name);
p1.run() //会报错


const p2 = new Student()
console.log(p2);